/* message.h
 *
 * Copyright (C) 2010 dking <dking024@gmail.com>
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public Licens e as
 * published by the Free Software Foundation; either version 2 of
 * the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 */

#ifndef __MESSAGE_H__
#define __MESSAGE_H__

enum MSG {
	MSG_MAIN_MENU_NEW_GAME,
	MSG_MAIN_MENU_RETURN_TO_GAME,
	MSG_MAIN_MENU_RESET_GAME,
	MSG_MAIN_MENU_VIDEO_AUDIO,
	MSG_MAIN_MENU_SAVED_STATES,
	MSG_MAIN_MENU_CHEATS,
	MSG_MAIN_MENU_TOOLS,
	MSG_MAIN_MENU_OPTIONS,
	MSG_MAIN_MENU_EXIT,

	MSG_FILE_MENU_LOADING_LIST,
	MSG_FILE_MENU_SORTING_LIST,

	MSG_VIDEO_AUDIO_FLUIDITY_PREFERENCE,
	MSG_VIDEO_AUDIO_FLUIDITY_PREFER_VIDEO,
	MSG_VIDEO_AUDIO_FLUIDITY_PREFER_AUDIO,
	MSG_VIDEO_ASPECT_RATIO,
	MSG_VIDEO_FAST_FORWARD,
	MSG_VIDEO_FRAME_SKIPPING,
	MSG_VIDEO_FRAMES_PER_SECOND_COUNTER,
	MSG_AUDIO_SOUND,
	MSG_VIDEO_REWINDING,
	MSG_VIDEO_BOOT_MODE,
	MSG_VIDEO_GAME_SCREEN,
	MSG_SAVED_STATE_CREATE,
	MSG_SAVED_STATE_LOAD,
	MSG_SAVED_STATE_DELETE_GENERAL,
	MSG_CHEAT_PAGE,
	MSG_CHEAT_LOAD_FROM_FILE,
	MSG_TOOLS_SCREENSHOT_GENERAL,
	MSG_TOOLS_GLOBAL_HOTKEY_GENERAL,
	MSG_TOOLS_GAME_HOTKEY_GENERAL,
	MSG_TOOLS_GLOBAL_BUTTON_MAPPING_GENERAL,
	MSG_TOOLS_GAME_BUTTON_MAPPING_GENERAL,
	MSG_TOOLS_DEBUG_MENU_ENGLISH,
	MSG_OPTIONS_LANGUAGE,
	MSG_OPTIONS_CPU_FREQUENCY,
	MSG_OPTIONS_RAM_FREQUENCY,
	MSG_OPTIONS_CARD_CAPACITY /* unused if !defined(ENABLE_FREE_SPACE) */,
	MSG_OPTIONS_RESET,
	MSG_OPTIONS_VERSION,
	MSG_SCREENSHOT_CREATE,
	MSG_SCREENSHOT_BROWSE,
	MSG_HOTKEY_REWIND,
	MSG_HOTKEY_MAIN_MENU,
	MSG_HOTKEY_TEMPORARY_FAST_FORWARD,
	MSG_HOTKEY_SOUND_TOGGLE,
	MSG_HOTKEY_QUICK_LOAD_STATE,
	MSG_HOTKEY_QUICK_SAVE_STATE,
	MSG_HOTKEY_FULL_SCREEN_TOGGLE,
	MSG_BUTTON_MAPPING_A,
	MSG_BUTTON_MAPPING_B,
	MSG_BUTTON_MAPPING_SELECT,
	MSG_BUTTON_MAPPING_START,
	MSG_BUTTON_MAPPING_R,
	MSG_BUTTON_MAPPING_L,
	MSG_BUTTON_MAPPING_RAPID_A,
	MSG_BUTTON_MAPPING_RAPID_B,
	MSG_BUTTON_MAPPING_INHERITED_FROM_GLOBAL,
	MSG_PROGRESS_HOTKEY_WAITING_FOR_KEYS,
	MSG_PROGRESS_MAPPING_WAITING_FOR_KEY,
	MSG_PROGRESS_MAPPING_WAITING_FOR_KEY_OR_CLEAR,
	MSG_HOTKEY_DELETE_WITH_A,
	MSG_HOTKEY_CANCEL_WITH_B,
	MSG_LOAD_GAME_RECENTLY_PLAYED,
	MSG_LOAD_GAME_FROM_CARD,
	MSG_LOAD_GAME_MENU_TITLE,

	MSG_VIDEO_ASPECT_RATIO_0,
	MSG_VIDEO_ASPECT_RATIO_1,
	MSG_VIDEO_ASPECT_RATIO_2,
	MSG_VIDEO_ASPECT_RATIO_3,
	MSG_VIDEO_ASPECT_RATIO_4,

	MSG_VIDEO_FRAME_SKIPPING_AUTOMATIC,
	MSG_VIDEO_FRAME_SKIPPING_0,
	MSG_VIDEO_FRAME_SKIPPING_1,
	MSG_VIDEO_FRAME_SKIPPING_2,
	MSG_VIDEO_FRAME_SKIPPING_3,
	MSG_VIDEO_FRAME_SKIPPING_4,
	MSG_VIDEO_FRAME_SKIPPING_5,
	MSG_VIDEO_FRAME_SKIPPING_6,
	MSG_VIDEO_FRAME_SKIPPING_7,
	MSG_VIDEO_FRAME_SKIPPING_8,
	MSG_VIDEO_FRAME_SKIPPING_9,
	MSG_VIDEO_FRAME_SKIPPING_10,

	MSG_VIDEO_REWINDING_0,
	MSG_VIDEO_REWINDING_1,
	MSG_VIDEO_REWINDING_2,
	MSG_VIDEO_REWINDING_3,
	MSG_VIDEO_REWINDING_4,
	MSG_VIDEO_REWINDING_5,
	MSG_VIDEO_REWINDING_6,

	MSG_VIDEO_BOOT_MODE_CARTRIDGE,
	MSG_VIDEO_BOOT_MODE_LOGO,

	MSG_VIDEO_GAME_SCREEN_TOP,
	MSG_VIDEO_GAME_SCREEN_BOTTOM,

	MSG_GENERAL_OFF,
	MSG_GENERAL_ON,

	MSG_GENERAL_CONFIRM_WITH_A,
	MSG_GENERAL_CANCEL_WITH_B,

	MSG_AUDIO_ENABLED,
	MSG_AUDIO_MUTED,

	MSG_TOP_SCREEN_NO_GAME_LOADED,
	MSG_CHEAT_ELEMENT_NOT_LOADED,

	MSG_SAVESTATE_FULL,
	MSG_PROGRESS_SAVED_STATE_CREATING,
	MSG_PROGRESS_SAVED_STATE_CREATION_FAILED,
	MSG_PROGRESS_SAVED_STATE_CREATION_SUCCEEDED,
	MSG_TOP_SCREEN_NO_SAVED_STATE_IN_SLOT,
	MSG_PROGRESS_SAVED_STATE_CORRUPTED,
	MSG_PROGRESS_SAVED_STATE_LOADING,
	MSG_PROGRESS_SAVED_STATE_LOAD_FAILED,
	MSG_PROGRESS_SAVED_STATE_LOAD_SUCCEEDED,

	FMT_STATUS_FRAMES_PER_SECOND,

	MSG_SAVED_STATE_DELETE_ALL,
	MSG_SAVED_STATE_DELETE_ONE,

	MSG_DIALOG_SAVED_STATE_DELETE_ALL,
	FMT_DIALOG_SAVED_STATE_DELETE_ONE,
	MSG_PROGRESS_SAVED_STATE_ALREADY_EMPTY,

	MSG_PROGRESS_SCREENSHOT_CREATING,
	MSG_PROGRESS_SCREENSHOT_CREATION_SUCCEEDED,
	MSG_PROGRESS_SCREENSHOT_CREATION_FAILED,

	MSG_NO_SLIDE,
	MSG_PLAYING_SLIDE,
	MSG_PAUSE_SLIDE,
	MSG_SCREENSHOT_SLIDESHOW_KEYS,

	MSG_PROGRESS_LOADING_GAME,

	MSG_EMULATOR_NAME,
	MSG_WORD_EMULATOR_VERSION,

	MSG_DIALOG_RESET,
	MSG_PROGRESS_RESETTING,

	MSG_END
};

enum LANGUAGE {
	ENGLISH,
	CHINESE_SIMPLIFIED,
	FRENCH,
	GERMAN,
	DUTCH,
	SPANISH,
	ITALIAN,
	PORTUGUESE_BRAZILIAN,
	CHINESE_TRADITIONAL,
	LANG_END  /* Must be last */
};

extern const char* lang[LANG_END]; // Allocated in gui.c, needs to match the languages ^

extern const char *msg[MSG_END + 1];
extern char msg_data[32 * 1024];

#endif //__MESSAGE_H__

